RDSの新規構築時に認証局(CA)の設定を必ず確認しましょう
こんにちは!コンサル部のinomaso(@inomasosan)です。
先日、構築したばかりのRDSに対して証明書更新の通知を見つけました。
これまでRDS構築時に認証機関を意識していなかったのですが、デフォルトの証明書(rds-ca-2019)だと2024/8に期限切れとなるため、注意喚起のブログとなります。
ある朝「証明書の更新」の通知を見つけてしまった
ある朝、RDSを確認しようとコンソールを開いたところ、サイドバーに証明書の更新が生えていることに気がつきました。
詳細を確認してみると、最近構築したはずのRDSの証明書が2024/8に有効期限が切れるため、更新が必要と表示されていました。
蘇る過去の証明書更新
2020年にRDSの証明書更新で苦労した方は多かったのではないでしょうか。
というのも証明書によるSSL/TLS通信を使用している・いないに関わらず更新が必須だったからです。
証明書の更新は短時間のダウンタイムが発生するため、当時は社内のシステム担当者への事前調整に奔走していました。
運用者の目線としては、回避可能なメンテナンスは事前に対応しておきたいところです。
認証機関に有効期限が40年と100年の認証局が利用可能
2023/1のアップデートで、rds-ca-2019 (デフォルト) 以外の認証局が選択可能になりました。
詳細は以下のブログを確認して頂きたいのですが、従来のシステムライフサイクルが約5年に対して、それを大幅に超える有効期限として40年と100年の認証局が用意されました。
アップデートで追加された認証局を利用するDBインスタンス証明書は、有効期限が切れる前に自動ローテーションすることで長期的な対応を可能としているようです。
2023/8の時点でrds-ca-2019 (デフォルト)を選択する理由は基本的には無い認識です。
RDSの新規構築時はrds-ca-rsa2048-g1、rds-ca-rsa4096-g1、rds-ca-ecc384-g1のいずれかを選択した方が良いでしょう。
DBエンジン毎に認証局やローテーション時の挙動が異なる
DBエンジンによって、使用可能な認証局が制限があったり、証明書のローテーションで再起動が必要な場合があります。
describe-db-engine-versions
コマンドにて、以下の項目から確認することができます。
- 使用可能なCA一覧:
SupportedCACertificateIdentifiers
- 証明書のローテーション時の再起動有無:
SupportsCertificateRotationWithoutRestart
例えばOracle Standard Edition Twoのデフォルト(最新)エンジンバージョンについては、以下のコマンドで確認できます。
aws rds describe-db-engine-versions --default-only --engine oracle-se2
{ "DBEngineVersions": [ { "Engine": "oracle-se2", "EngineVersion": "19.0.0.0.ru-2023-07.rur-2023-07.r1", "DBParameterGroupFamily": "oracle-se2-19", "DBEngineDescription": "Oracle Database Standard Edition Two", "DBEngineVersionDescription": "Oracle 19.0.0.0.ru-2023-07.rur-2023-07.r1", "DefaultCharacterSet": { "CharacterSetName": "AL32UTF8", "CharacterSetDescription": "Unicode 5.0 UTF-8 Universal character set" }, "ValidUpgradeTarget": [ { "Engine": "oracle-se2-cdb", "EngineVersion": "19.0.0.0.ru-2023-07.rur-2023-07.r1", "Description": "Oracle 19.0.0.0.ru-2023-07.rur-2023-07.r1", "AutoUpgrade": false, "IsMajorVersionUpgrade": false } ], "ExportableLogTypes": [ "alert", "audit", "listener", "oemagent", "trace" ], "SupportsLogExportsToCloudwatchLogs": true, "SupportsReadReplica": false, "SupportedFeatureNames": [ "EFS_INTEGRATION", "S3_INTEGRATION" ], "Status": "available", "SupportsParallelQuery": false, "SupportsGlobalDatabases": false, "MajorEngineVersion": "19", "SupportsBabelfish": false, "SupportsCertificateRotationWithoutRestart": true, "SupportedCACertificateIdentifiers": [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ], "SupportsLocalWriteForwarding": false } ] }
まとめ
RDSに自動ローテーションに対応した認証局が追加されたので、構築時はそちらの認証局を選ぶようにしましょう。
この記事が、どなたかのお役に立てば幸いです。それでは!